package com.arron.innerClass;

import java.io.UnsupportedEncodingException;

/**
 * @Classname Test
 * @Date 2020/9/6 10:37
 * @Created by 刘
 */
class A{

    int num1 = 2;

    /**
     * 1.成员内部类
     */
    public class B{
        public int a,b;
    }

    public B getB(){
        return new B();
    }

    /**
     *2. 静态内部类
     */
    static class C{
        int x;
    }


    public void  method2(){
        //jdk8默认都是使用了final修饰
        int c = 3;

        /**
         *3. 属于局部内部类
         *      创建在栈帧里，当方法结束之后就结束了
         *      但是类创建在堆里，所以局部内部类的释放就需要等垃圾回收自己回收
         */
        class D{
            public int d = 6;

            public void method1(){
                //访问内部类的变量
                System.out.println(d);
                //访问方法里的变量
                System.out.println(c);
                //局部内部类访问外部类的成员变量的方式
                System.out.println(A.this.num1);


            }

        }



    }

}

/**
 * 1.成员内部类的访问形式
 *      1）静态
 *      2）非静态
 *  2.局部内部类
 *
 */

public class Test {

    public static void main(String[] args) throws UnsupportedEncodingException {
        //静态
        A.C c = new A.C();
        /**
            非静态,就相当于通过创建对象类调用成员变量进行实例化
         */
        A a = new A();
        A.B b = a.new B();

        /**
         * ,Math.floor ：始终返回整数部分
         * Math.ceil ：始终四舍五入
         * Math.round : 根据四舍五入进行取值，始终取最接近的值
         */
        System.out.println(Math.floor(0.9));
        System.out.println(Math.ceil(0.4));
        System.out.println(Math.round(0.4));

        /**
         * 字符串编码的转换
         */

        String newstr=new String("asa ".getBytes("ISO-8859-1"), "UTF-8");

        String srv = "祝你好运！";
        String test = "    ";
        System.out.println("空格长度："+test.length());
        System.out.println("字符串的长度："+srv.length());

    }


}
